package com.heima.freemarker.web;

import com.heima.freemarker.pojo.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/hello")
public class HelloController {
    /**
     * springmvc默认进行传输数据到前台的格式：
     *  有三种：
     *      Model 表示模型    作为参数使用,返回值必须是字符串
     *      ModelMap 表示map集合  作为参数使用，返回值必须是字符串
     *      ModelAndView 表示模型和视图  作为返回值使用
     */
    @GetMapping
    public String modelTest(Model model){
        //1.传输数据
        model.addAttribute("username","二狗子");
        //2.跳转页面 return后面的字符串表示跳转的页面名称
        return "01-basic";

    }

    @GetMapping("/map")
    public String modelMapTest(ModelMap model){
        //1.传输数据
        model.put("username","二狗子aaa");
        //2.跳转页面 return后面的字符串表示跳转的页面名称
        return "01-basic";

    }

    @GetMapping("/mav")
    public ModelAndView mavTest(){
        //1.传输数据
        ModelAndView mav=new ModelAndView("01-basic");
        mav.addObject("username","翠花");
        //2.跳转页面
        //mav.setViewName("01-basic");
        return mav;

    }

    @GetMapping("/list")
    public String listTest(Model model){

        List<Student> list=new ArrayList<>();
        Student student=new Student();
        student.setAge(120);
        student.setMoney(200d);
        student.setName("四狗子");

        Student student2=new Student();
        student2.setAge(12);
        student2.setMoney(200d);
        student2.setName("二狗子");

        list.add(student);
        list.add(student2);

        model.addAttribute("stus",list);


        Map<String,Object> map=new HashMap<>();
        map.put("stu1",student);
        map.put("stu2",student2);

        model.addAttribute("stuMap",map);


        return "02-list";

    }
}
